package 接口;
/*
* 接口的使用
* 1.接口的使用上也满足的多态性
* 2.接口，实际上就是定义一种规范
* 3.开发中 体会面向接口编程
* */
public class USBTest {
    public static void main(String[] args) {
        Computer com=new Computer();
        //接口的多态性  创建了接口的非匿名实现类的非匿名对象
        Flash flash=new Flash();//实现类的对象，
        com.transferData(flash);
        //2创建了接口的非匿名实现类的匿名对象
        com.transferData(new Printer());
        //创建类接口的匿名实现类的非匿名对象
        USB phone = new USB(){

            @Override
            public void start() {
                System.out.println("手机开始工作");
            }

            @Override
            public void stop() {
                System.out.println("手机结束工作");
            }
        };
        phone.stop();
        phone.start();
        //创建了接口的匿名实现类的匿名对象
        com.transferData(new USB(){

            @Override
            public void start() {
                System.out.println("巩固走");
            }

            @Override
            public void stop() {
                System.out.println("结束");
            }
        });

    }
}
class Computer{
    public void transferData(USB usb){//接口不能被调对象 USB usb=new Flash();
        usb.start();
        System.out.println("具体输出数据的细节");
        usb.stop();
    }
}
interface USB{
    void start();
    void stop();

}
class Flash implements USB{

    @Override
    public void start() {
        System.out.println("U盘开启工作");
    }

    @Override
    public void stop() {
        System.out.println("U盘结束工作");
    }
}
class Printer implements USB{

    @Override
    public void start() {
        System.out.println("打印机开启工作");
    }

    @Override
    public void stop() {
        System.out.println("打印机结束工作");
    }
}